package cn.green.business.dao;

import cn.green.business.entity.Entity;

import java.util.List;

/**
 * dao数据交互层
 * 主要进行与数据库进行交互的功能
 * @param <E> 泛型：Entity实体
 */
public interface Dao<E extends Entity> {

    /**
     * 根据实体提供的参数，查询列表
     * @param param     实体参数
     * @return List<E>  实体列表
     */
    List<E> getList(E param);

    /**
     * 根据主键id查询
     * @param id       主键
     * @return E       实体类对象
     */
    E findById(String id);

    /**
     * 插入数据表
     * @param e         实体对象
     * @return
     */
    int insert(E e);

    /**
     * 修改数据表
     * @param e
     * @return
     */
    int update(E e);

    /**
     * 删除数据表
     * @param e
     * @return
     */
    int delete(E e);
}
